package edu.rakovic.elearning.interfaces;

import java.util.List;

import org.apache.tapestry5.beaneditor.Validate;

import edu.rakovic.elearning.enums.Role;
import edu.rakovic.elearning.service.Applications;
import edu.rakovic.elearning.service.Courses;
import edu.rakovic.elearning.service.Users;

public interface User {
	
	@Validate("required")
	public String getUserName();
	public void setUserName(String userName);
	@Validate("required")
	public String getFullName();
	public void setFullName(String fullName);
	@Validate("required")
	public String getPassword();
	public void setPassword(String password);
	public void setRole(Role role);
	@Validate("required")
	public Role getRole();
	public void setTeachingCourses(List<Course> teachingCourses);
	public List<Course> getTeachingCourses();
	public void setCourseApplication(List<Application> courseAttendance);
	public List<Application> getCourseApplication();
	public boolean isAppliedToCourse(Course course);
	public User removeTeacher(Users users, Courses courses, Applications applications);
	public User removeUser(Users users, Courses courses, Applications applications);
	
	public void setTakenExams(List<Exam> takenExams);
	public List<Exam> getTakenExams();

}
